#pragma once

#include "Color.h"
#include "GeoExport.h"

class HalfEdge;
class Edge;
class Face;

class GEO_API Loop {
public:
    Loop(Face* face);

    Face* face() const { return _face; }

    HalfEdge* headHe() const { return _headHe; }
    void setHeadHe(HalfEdge* he) { _headHe = he; }

    Color color() const { return _color; }
    void setColor(const Color& color) { _color = color; }
    void setColor(int r, int g, int b) { _color = Color(r, g, b); }

    void updateNormal();

private:
    Face* _face = nullptr;
    HalfEdge* _headHe = nullptr;
    Color _color;
};